package com.icinfo.cloud.provider.punish.api.client.ucase.casemain;

import com.icinfo.cloud.provider.punish.ucase.casemain.vo.CaseMainInfoVo;
import com.icinfo.framework.common.web.Result;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * 描述：案件主要信息客户端接口
 *
 * @author xiangyuyu
 * @date 2022/6/27 16:35
 */
@FeignClient(value = "${unified-punish-case-provider.namespace:}unified-punish-case-provider", contextId = "CaseMainInfoClient")
public interface CaseMainInfoClient {

    /**
     * 【V1.0.0】描述：根据案件id查询案件主要信息
     *
     * @param caseId 案件id
     * @return {@link Result <CaseMainInfoVo>} 案件主要信息
     * @author xiangyuyu
     * @date 2022-02-22 09:33
     */
    @PostMapping("/punish/ucase/case/main/getCaseMainInfo")
    @ApiOperation(value = "【V1.0.0】描述：根据案件id查询案件主要信息", httpMethod = "POST")
    Result<CaseMainInfoVo> getCaseMainInfo(@RequestParam(value = "caseId") String caseId);

    /**
     * 描述：校验案件是否处于不可操作状态
     *
     * @param caseId 案件id
     * @return Result<boolean> 案件是否处于不可操作状态(true-是/false-否)
     * @author xiangyuyu
     * @date 2022-06-01 22:13
     */
    @PostMapping("/punish/ucase/case/main/validateCaseIsInNotDealStatus")
    @ApiOperation(value = "描述：校验案件是否处于不可操作状态", httpMethod = "POST")
    Result<Boolean> validateCaseIsInNotDealStatus(@RequestParam(value = "caseId") String caseId);
}
